#include "common.h"
int main()
{
    key_t k = getKey();
    printf("0X%x\n", k);
    int shmid = createShm(k);
    // int shmid = getShm(k);

    char *memStart = (char *)attachShm(shmid); // 让共享内存与虚拟内存建立联系
    printf("memStart address:%p\n", memStart);

    // 通信接收代码
    while (true)
    {
        printf("client say:%s\n", memStart);
        sleep(1);

        // 调用用户级结构体
        struct shmid_ds ds;           // 创建结构体对象ds
        shmctl(shmid, IPC_STAT, &ds); // 获取ds对象的状态
        printf("获取属性：%d,pid:%d,myself:%d,key:%d\n", ds.shm_segsz, getpid(), ds.shm_cpid, ds.shm_perm.__key);
    }

    detchShm(memStart); // 去关联
    sleep(10);

    delShm(shmid); // 删除共享内存,client和server都能删除共享内存，尽量谁创建谁删
    return 0;
}